package com.lh.tams.dao;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.lh.tams.controller.qo.CaseQo;
import com.lh.tams.dao.base.HibernateBaseDao;
import com.lh.tams.domain.TamsRegister;
import com.lh.tams.util.DataGridModel;
import com.lh.tams.util.Page;
import com.lh.tams.util.Status;

@Repository
public class RegisterDao extends HibernateBaseDao{
	
	public void add(TamsRegister tamsRegister){
		super.add(tamsRegister);
	}
	
	public TamsRegister queryByCase(String caseNo){
		String hql="from TamsRegister t where t.caseNo=?";
		List<TamsRegister> list= getHibernateTemplate().find(hql, caseNo);
		if(list.size()>0)
			return list.get(0);
		return null;
	}
	
	public Page query(DataGridModel dgm,CaseQo caseQo,long personId){
		List<Object> args=new ArrayList<Object>();
		StringBuilder hql=new StringBuilder();
		hql.append("select t from TamsRegister t left join t.tamsCase tc where 1=1");
		if(personId>0){
			hql.append(" and t.tamsPerson.idBgt=?");
			args.add(personId);
		}
		if(caseQo.getOutDept()>0){
			hql.append(" and tc.tamsDeptByOutDept.idBgt=?");
			args.add(caseQo.getOutDept());
		}
		if(caseQo.getOutPerson()>0){
			hql.append(" and tc.tamsPersonByOutPerson.idBgt=?");
			args.add(caseQo.getOutPerson());
		}
		if(caseQo.getAlarmName()!=null&&!"".equals(caseQo.getAlarmName())){
			hql.append(" and tc.alarmName like ?");
			args.add("%"+caseQo.getAlarmName()+"%");
		}
		hql.append(" and t.isFinish=?");
		if(caseQo.getIsFinish()!=Status.IS_FINISH_YES){
			args.add(Status.IS_FINISH_NO);
		}else{
			args.add(Status.IS_FINISH_YES);
		}
		if(caseQo.getCaseNo()!=null&&!"".equals(caseQo.getCaseNo())){
			hql.append(" and t.caseNo like ?");
			args.add("%"+caseQo.getCaseNo()+"%");
		}
		hql.append("  order by t.caseNo desc");
		return super.queryForList(hql.toString(), args.toArray(), dgm.getPage(), dgm.getRows());
	}

}
